1. Field of the Invention
The present invention relates to use of multicasting to implement a redundant storage protocol such as a redundant array of inexpensive devices (RAID), mirroring or striping of storage devices, where the storage devices are separated from a controller by a network. It is preferred for the controller to be hosted on an intelligent switch and for the controller to use SCSI commands to control the storage devices, although it alternatively can use IDE/ATA commands. The network may comprise ethernet, fibre channel or another physical layer protocol. One or more commands, such SCSI commands, can be encapsulated directly in a network packet or encapsulated in IP packet. When commands are encapsulated in IP packets, either a reliable or unreliable transport protocol can be used. Preferably, the use a reliable multicast protocol can be avoided.
2. Description of Related Art
Network-attached storage (NAS) is a means to fulfill the needs of clients who want fast, scalable, high-bandwidth access to their data. It is a means to improve scalability of existing distributed file systems by removing the server as a bottleneck in using the network as bandwidth to allow parallelism by using striping and more efficient data pass. Significant to implementing network-attached storage is a trend towards increasingly intelligent storage devices. Intelligent storage devices provide functionality previously reserved to dedicated servers.
A second advantage of network-attached storage is reduced total cost of ownership (TCO). Network-attached storage offers convenient placement of storage devices. Plug-and-play configuration can be incorporated. Administration can be simplified, reducing the load on or need for information technology professionals who are needed to maintain and fine-tune dedicated servers.
A variation on the traditional client/server or Server Integrated Disk (SID) system uses SCSI commands across a network. This scheme is referred to as Server Attached Disk (SAD). This new model allows storage devices to be arbitrarily placed on a network. A SCSI protocol such as NetSCSI is used by the server to control the remotely located storage devices. Users of a NetSCSI system can have their own storage area network (SAN) using their existing networks and intelligent SCSI hard disks, without the added cost and complexity of high-end storage area network systems.
An additional concern that is always present in storage systems and may be accentuated by network-attached storage is redundancy. Recovery from failure of an individual storage device requires some degree of redundancy. File servers have used redundant arrays of inexpensive devices (RAID) to provide redundancy. Several RAID levels have been defined. RAID level 1, for instance, involves mirroring of paired storage extents on distinct physical devices. Failure of one device leaves the other device available. RAID level 4, as an alternative, involves using two or more extents of storage devices plus an additional extent for parity data. Again, failure of one device can be overcome by reconstructing the data on the failed device from the remaining devices.
Implementation of RAID has typically required trained information technology professionals. Network administrators without formal information technology training may find it difficult to choose among the alternative RAID configurations. Growth in storage needs may require choice of a different configuration and migration from an existing to a new RAID configuration. The selection of hardware to implement an array may involve substantial expense. A relatively simple, inexpensive and preferably self-configuring scheme for redundant storage is desired.
Therefore, it is desirable to provide redundant storage across a network to assure redundancy while providing automatic configuration to reduce the total cost of system ownership. It is further desirable to take advantage of network-oriented protocols, such as multicasting packets, to implement redundant storage in an efficient way.
The present invention includes using packet multicasting to implement redundant configurations of networked storage devices. It is preferred to use an intelligent switch, in communication with a plurality of storage devices, as a RAID controller. The intelligent switch may function as a thinserver, supporting a file system such as NFS or CIFS. By cascading switches, one or more of the storage devices in communication with the switch may actually be another switch, appearing as a virtual storage device.
The present invention includes multicasting command packets. In some protocols, such as SCSI, a series of commands may be required to establish communications between the initiator and the target, followed by data transfer. Multiple commands can be multicast in single packet. Read commands can advantageously be multicast to retrieve data from identically located blocks in different partitions or extents of data. Write commands can be multicast to establish communications. Data also may be multicast for certain configurations of RAID, such as mirrored disks and byte-wise striped disks.
Another aspect of the present invention is use of forward error correction to avoid the need for reliable multicast protocols. A variety of forward error correction algorithms may be used, including parity blocks. Forward error correction can be implemented on a selective basis. Error correction can be implemented when packet loss exceeds a threshold or on a transaction-by-transaction basis. Error correction can be supplemented by a dampening mechanism to minimize oscillation.
Another aspect of the present invention is control of multicast implosion. When multicast read commands are issued to numerous disks or for a large quantity of data, delay and backoff algorithms minimize oscillation.
The present invention is suitably implemented on a switch in communication with multiple storage devices over raw ethernet, IP over UDP, fibre channel, or other communications protocol.